#include "fsl_common.h"
#include "fsl_iomuxc.h"
#include "MCIMX6Y2.h"

void clk_enable(void)
{
    CCM->CCGR0 = 0xffffffff;
    CCM->CCGR1 = 0xffffffff;
    CCM->CCGR2 = 0xffffffff;
    CCM->CCGR3 = 0xffffffff;
    CCM->CCGR4 = 0xffffffff;
    CCM->CCGR5 = 0xffffffff;
    CCM->CCGR6 = 0xffffffff;
}

void led_init(void)
{
    IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03, 0);
    IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO03_GPIO1_IO03, 0x10B0);
    GPIO1->GDIR = 0x08;
    GPIO1->DR = 0x0;
}

void led_on(void)
{
    GPIO1->DR &= ~0x08;
}

void led_off(void)
{
    GPIO1->DR |= 0x08;
}

void delay_short(volatile unsigned int n)
{
    while(n--)
    {}
}

void delay(volatile unsigned int n)
{
    while(n--)
    {
        delay_short(0x7ff);
    }
}

void main(void)
{
    clk_enable();
    led_init();

    while (1)
    {
        led_off();
        delay(500);

        led_on();
        delay(500);
    }
    
}
